Print when Enter pressed in certain GtkEntries of the print dialog
authorMarek Kasik <mkasik@redhat.com>
Tue, 11 Aug 2009 07:24:18 +0000 (09:24 +0200)
committerMarek Kasik <mkasik@redhat.com>
Tue, 11 Aug 2009 07:24:18 +0000 (09:24 +0200)
Print when Enter pressed in Name entry or Command Line entry in the
print dialog (#564695).
Add gtk_printer_option_set_activates_default() function and
gtk_printer_option_get_activates_default() function to control
behaviour of GtkPrinterOptionWidget.

gtk/gtk.symbols
gtk/gtkprinteroption.c
gtk/gtkprinteroption.h
gtk/gtkprinteroptionwidget.c
modules/printbackends/file/gtkprintbackendfile.c
modules/printbackends/lpr/gtkprintbackendlpr.c

index 64e69ab6635dec06cf941be70a9b19bb3bf16faf..e4ccad2a9191c877323562a323c1bcf23233b196 100644 (file)
@@ -2957,6 +2957,8 @@ gtk_printer_option_clear_has_conflict
 gtk_printer_option_set_boolean
 gtk_printer_option_allocate_choices
 gtk_printer_option_choices_from_array
+gtk_printer_option_set_activates_default
+gtk_printer_option_get_activates_default
 #endif
 #endif
 #endif
index 983dc65d565771f0d603651019c90a0050f723aa..47fcd32755e5bebbde123c299cffe98e727b0310 100644 (file)
@@ -63,6 +63,7 @@ static void
 gtk_printer_option_init (GtkPrinterOption *option)
 {
   option->value = g_strdup ("");
+  option->activates_default = FALSE;
 }
 
 static void
@@ -215,6 +216,23 @@ gtk_printer_option_has_choice (GtkPrinterOption     *option,
   return FALSE;
 }
 
+void
+gtk_printer_option_set_activates_default (GtkPrinterOption *option,
+                                         gboolean          activates)
+{
+  g_return_if_fail (GTK_IS_PRINTER_OPTION (option));
+
+  option->activates_default = activates;
+}
+
+gboolean
+gtk_printer_option_get_activates_default (GtkPrinterOption *option)
+{
+  g_return_val_if_fail (GTK_IS_PRINTER_OPTION (option), FALSE);
+
+  return option->activates_default;
+}
+
 
 #define __GTK_PRINTER_OPTION_C__
 #include "gtkaliasdef.c"
index cce6986960f0a7d1be5a11437c1578403bff9a10..f1831a31c2e5f418c0bc1f354280d0462393bba4 100644 (file)
@@ -70,6 +70,8 @@ struct _GtkPrinterOption
   char **choices;
   char **choices_display;
   
+  gboolean activates_default;
+
   gboolean has_conflict;
   char *group;
 };
@@ -92,24 +94,27 @@ struct _GtkPrinterOptionClass
 
 GType   gtk_printer_option_get_type       (void) G_GNUC_CONST;
 
-GtkPrinterOption *gtk_printer_option_new                (const char           *name,
-                                                        const char           *display_text,
-                                                        GtkPrinterOptionType  type);
-void              gtk_printer_option_set                (GtkPrinterOption     *option,
-                                                        const char           *value);
-void              gtk_printer_option_set_has_conflict   (GtkPrinterOption     *option,
-                                                        gboolean              has_conflict);
-void              gtk_printer_option_clear_has_conflict (GtkPrinterOption     *option);
-void              gtk_printer_option_set_boolean        (GtkPrinterOption     *option,
-                                                        gboolean              value);
-void              gtk_printer_option_allocate_choices   (GtkPrinterOption     *option,
-                                                        int                   num);
-void              gtk_printer_option_choices_from_array (GtkPrinterOption     *option,
-                                                        int                   num_choices,
-                                                        char                 *choices[],
-                                                        char                 *choices_display[]);
-gboolean          gtk_printer_option_has_choice         (GtkPrinterOption     *option,
-                                                        const char           *choice);
+GtkPrinterOption *gtk_printer_option_new                    (const char           *name,
+                                                            const char           *display_text,
+                                                            GtkPrinterOptionType  type);
+void              gtk_printer_option_set                    (GtkPrinterOption     *option,
+                                                            const char           *value);
+void              gtk_printer_option_set_has_conflict       (GtkPrinterOption     *option,
+                                                            gboolean              has_conflict);
+void              gtk_printer_option_clear_has_conflict     (GtkPrinterOption     *option);
+void              gtk_printer_option_set_boolean            (GtkPrinterOption     *option,
+                                                            gboolean              value);
+void              gtk_printer_option_allocate_choices       (GtkPrinterOption     *option,
+                                                            int                   num);
+void              gtk_printer_option_choices_from_array     (GtkPrinterOption     *option,
+                                                            int                   num_choices,
+                                                            char                 *choices[],
+                                                            char                 *choices_display[]);
+gboolean          gtk_printer_option_has_choice             (GtkPrinterOption     *option,
+                                                           const char           *choice);
+void              gtk_printer_option_set_activates_default (GtkPrinterOption     *option,
+                                                           gboolean              activates);
+gboolean          gtk_printer_option_get_activates_default (GtkPrinterOption     *option);
 
 
 G_END_DECLS
index 38cdf00801027323ca8b75e358cb1e47a6bf1056..d91b51c591cfb000e5c1c6c9a8881ce2eecdec43 100644 (file)
@@ -767,6 +767,8 @@ construct_widgets (GtkPrinterOptionWidget *widget)
 
     case GTK_PRINTER_OPTION_TYPE_STRING:
       priv->entry = gtk_entry_new ();
+      gtk_entry_set_activates_default (GTK_ENTRY (priv->entry),
+                                       gtk_printer_option_get_activates_default (source));
       gtk_widget_show (priv->entry);
       gtk_box_pack_start (GTK_BOX (widget), priv->entry, TRUE, TRUE, 0);
       g_signal_connect (priv->entry, "changed", G_CALLBACK (entry_changed_cb), widget);
@@ -792,6 +794,8 @@ construct_widgets (GtkPrinterOptionWidget *widget)
                                                    GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
 
         g_object_set (priv->combo, "local-only", FALSE, NULL);
+        gtk_entry_set_activates_default (GTK_ENTRY (priv->entry),
+                                         gtk_printer_option_get_activates_default (source));
 
         label = gtk_label_new_with_mnemonic (_("_Name:"));
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
index bc58751e0112138c85152df3303f9893c3ac19f5..0cf114fbe7fba7aadbc70cbc9e76fbbbebf094ba 100644 (file)
@@ -645,6 +645,7 @@ file_printer_get_options (GtkPrinter           *printer,
 
   option = gtk_printer_option_new ("gtk-main-page-custom-input", _("File"), 
                                   GTK_PRINTER_OPTION_TYPE_FILESAVE);
+  gtk_printer_option_set_activates_default (option, TRUE);
   gtk_printer_option_set (option, uri);
   g_free (uri);
   option->group = g_strdup ("GtkPrintDialogExtension");
index 9d9c932a0da06c51925f3417b6ad9db5f9b19e15..a20f0d31a378be643250bafd58d159e53848067e 100644 (file)
@@ -431,6 +431,7 @@ lpr_printer_get_options (GtkPrinter           *printer,
   g_object_unref (option);
 
   option = gtk_printer_option_new ("gtk-main-page-custom-input", _("Command Line"), GTK_PRINTER_OPTION_TYPE_STRING);
+  gtk_printer_option_set_activates_default (option, TRUE);
   option->group = g_strdup ("GtkPrintDialogExtension");
   if (settings != NULL &&
       (command = gtk_print_settings_get (settings, "lpr-commandline"))!= NULL)